<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>AXI muckbucket: axi_monitor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">AXI muckbucket
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classaxi__monitor-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">axi_monitor Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>monitors all 5 channels for activity  
 <a href="classaxi__monitor.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for axi_monitor:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor__inherit__graph.png" border="0" usemap="#axi__monitor_inherit__map" alt="Inheritance graph"/></div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for axi_monitor:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor__coll__graph.png" border="0" usemap="#axi__monitor_coll__map" alt="Collaboration graph"/></div>
<map name="axi__monitor_coll__map" id="axi__monitor_coll__map">
<area shape="rect" id="node3" href="classaxi__if__abstract.html" title="abstract base class for polymorphic interface class (axi_if_concrete) for AXI UVM environment ..." alt="" coords="127,81,234,108"/>
<area shape="rect" id="node7" href="classaxi__agent__config.html" title="Configuration object for an axi_agent. " alt="" coords="258,81,378,108"/>
<area shape="rect" id="node5" href="classmemory.html" title="Extremely simple memory model with just write() and read() methods. " alt="" coords="402,81,471,108"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a45ff32f05984e710070e614ffc9784a8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a45ff32f05984e710070e614ffc9784a8">uvm_component_utils</a> (<a class="el" href="classaxi__monitor.html">axi_monitor</a>) uvm_analysis_port&lt; <a class="el" href="classaxi__seq__item.html">axi_seq_item</a> &gt; ap</td></tr>
<tr class="separator:a45ff32f05984e710070e614ffc9784a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1cc05f18a24d7030f6cc05463435b65"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#ae1cc05f18a24d7030f6cc05463435b65">new</a> (string name=&quot;axi_monitor&quot;, uvm_component parent=null)</td></tr>
<tr class="memdesc:ae1cc05f18a24d7030f6cc05463435b65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#ae1cc05f18a24d7030f6cc05463435b65">More...</a><br /></td></tr>
<tr class="separator:ae1cc05f18a24d7030f6cc05463435b65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1adf9a7a1d88c827e3ae6353a1ee386b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a1adf9a7a1d88c827e3ae6353a1ee386b">build_phase</a> (uvm_phase phase)</td></tr>
<tr class="memdesc:a1adf9a7a1d88c827e3ae6353a1ee386b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the analysis port and virtual interface.  <a href="#a1adf9a7a1d88c827e3ae6353a1ee386b">More...</a><br /></td></tr>
<tr class="separator:a1adf9a7a1d88c827e3ae6353a1ee386b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf50ccb4de6b07caf13598a0e761250a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#adf50ccb4de6b07caf13598a0e761250a">connect_phase</a> (uvm_phase phase)</td></tr>
<tr class="separator:adf50ccb4de6b07caf13598a0e761250a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34a7e7fb040dbba2301f67bf6e40fe91"><td class="memItemLeft" align="right" valign="top">task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a34a7e7fb040dbba2301f67bf6e40fe91">run_phase</a> (uvm_phase phase)</td></tr>
<tr class="memdesc:a34a7e7fb040dbba2301f67bf6e40fe91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the monitoring threads.  <a href="#a34a7e7fb040dbba2301f67bf6e40fe91">More...</a><br /></td></tr>
<tr class="separator:a34a7e7fb040dbba2301f67bf6e40fe91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b7dc286ef67470782ca0d74f60dc692"><td class="memItemLeft" align="right" valign="top">task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a6b7dc286ef67470782ca0d74f60dc692">write_address</a> ()</td></tr>
<tr class="memdesc:a6b7dc286ef67470782ca0d74f60dc692"><td class="mdescLeft">&#160;</td><td class="mdescRight">monitors Write Address channel  <a href="#a6b7dc286ef67470782ca0d74f60dc692">More...</a><br /></td></tr>
<tr class="separator:a6b7dc286ef67470782ca0d74f60dc692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a533d709a6e06148b22425eb52277983b"><td class="memItemLeft" align="right" valign="top">task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a533d709a6e06148b22425eb52277983b">write_data</a> ()</td></tr>
<tr class="memdesc:a533d709a6e06148b22425eb52277983b"><td class="mdescLeft">&#160;</td><td class="mdescRight">monitors Write Data channel  <a href="#a533d709a6e06148b22425eb52277983b">More...</a><br /></td></tr>
<tr class="separator:a533d709a6e06148b22425eb52277983b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a999c77ab0723510d713bc1d89b1f5c92"><td class="memItemLeft" align="right" valign="top">task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a999c77ab0723510d713bc1d89b1f5c92">write_response</a> ()</td></tr>
<tr class="memdesc:a999c77ab0723510d713bc1d89b1f5c92"><td class="mdescLeft">&#160;</td><td class="mdescRight">monitors Write Response channel and sends out TLM pkt Loop Wait for activity on the Write Response Channel Convert into an <a class="el" href="classaxi__seq__item.html" title="contains all data and functions related to axi and usage ">axi_seq_item</a> Send out analysis port  <a href="#a999c77ab0723510d713bc1d89b1f5c92">More...</a><br /></td></tr>
<tr class="separator:a999c77ab0723510d713bc1d89b1f5c92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1894a2a0b2a491fc4cfc047fe5bc62e9"><td class="memItemLeft" align="right" valign="top">task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a1894a2a0b2a491fc4cfc047fe5bc62e9">read_address</a> ()</td></tr>
<tr class="memdesc:a1894a2a0b2a491fc4cfc047fe5bc62e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">monitors Read Address channel  <a href="#a1894a2a0b2a491fc4cfc047fe5bc62e9">More...</a><br /></td></tr>
<tr class="separator:a1894a2a0b2a491fc4cfc047fe5bc62e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9d073687e001b3bde7cc83e11c76a96"><td class="memItemLeft" align="right" valign="top">task&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#ae9d073687e001b3bde7cc83e11c76a96">read_data</a> ()</td></tr>
<tr class="memdesc:ae9d073687e001b3bde7cc83e11c76a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">monitors Read Data channel and sends out TLM pkt Loop Wait for activity on the Read Data Channel,store in queue Once read address packet received, store queue contents into tlm pkt When rlast received, send out analysis port  <a href="#ae9d073687e001b3bde7cc83e11c76a96">More...</a><br /></td></tr>
<tr class="separator:ae9d073687e001b3bde7cc83e11c76a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ad221ada88970cbfcc956744c45aa6acd"><td class="memItemLeft" align="right" valign="top">uvm_analysis_port&lt; <a class="el" href="classaxi__seq__item.html">axi_seq_item</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#ad221ada88970cbfcc956744c45aa6acd">driver_activity_ap</a></td></tr>
<tr class="separator:ad221ada88970cbfcc956744c45aa6acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19f6bfb89c02348e010c96b3ba70ba02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classaxi__if__abstract.html">axi_if_abstract</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a19f6bfb89c02348e010c96b3ba70ba02">vif</a></td></tr>
<tr class="separator:a19f6bfb89c02348e010c96b3ba70ba02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a402836a98848f900644618787e2030e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classaxi__agent__config.html">axi_agent_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a402836a98848f900644618787e2030e8">m_config</a></td></tr>
<tr class="separator:a402836a98848f900644618787e2030e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a606253997dae58935a0d5de9d4a69368"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmemory.html">memory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a606253997dae58935a0d5de9d4a69368">m_memory</a></td></tr>
<tr class="separator:a606253997dae58935a0d5de9d4a69368"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59cd4aabf0d1e6e9064c94578ae75818"><td class="memItemLeft" align="right" valign="top">mailbox&lt; <a class="el" href="classaxi__seq__item.html">axi_seq_item</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#a59cd4aabf0d1e6e9064c94578ae75818">writedata_mbx</a> = <a class="el" href="classaxi__monitor.html#ae1cc05f18a24d7030f6cc05463435b65">new</a>(0)</td></tr>
<tr class="separator:a59cd4aabf0d1e6e9064c94578ae75818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad54a0f558dbdd6e86df4e8f9d9db92d7"><td class="memItemLeft" align="right" valign="top">mailbox&lt; <a class="el" href="classaxi__seq__item.html">axi_seq_item</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaxi__monitor.html#ad54a0f558dbdd6e86df4e8f9d9db92d7">readdata_mbx</a> = <a class="el" href="classaxi__monitor.html#ae1cc05f18a24d7030f6cc05463435b65">new</a>(0)</td></tr>
<tr class="separator:ad54a0f558dbdd6e86df4e8f9d9db92d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>monitors all 5 channels for activity </p>
<ul>
<li>Sends Write Address, Write Response and Read Address out on each clock</li>
<li>Sends entire Write Data and Read Data out together</li>
<li>Driver</li>
<li>* Updates agent memory on each write data beat</li>
<li>Responder</li>
<li>* Sends a read data sequence to the responder when a read address transaction is detected Main cover properties and assertions are here. </li>
</ul>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00041">41</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a1adf9a7a1d88c827e3ae6353a1ee386b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void axi_monitor::build_phase </td>
          <td>(</td>
          <td class="paramtype">uvm_phase&#160;</td>
          <td class="paramname"><em>phase</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates the analysis port and virtual interface. </p>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00077">77</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>References <a class="el" href="axi__monitor_8svh_source.html#l00045">driver_activity_ap</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00047">vif</a>.</p>

</div>
</div>
<a class="anchor" id="adf50ccb4de6b07caf13598a0e761250a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void axi_monitor::connect_phase </td>
          <td>(</td>
          <td class="paramtype">uvm_phase&#160;</td>
          <td class="paramname"><em>phase</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00087">87</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

</div>
</div>
<a class="anchor" id="ae1cc05f18a24d7030f6cc05463435b65"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axi_monitor::new </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em> = <code>&quot;axi_monitor&quot;</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uvm_component&#160;</td>
          <td class="paramname"><em>parent</em> = <code>null</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00070">70</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

</div>
</div>
<a class="anchor" id="a1894a2a0b2a491fc4cfc047fe5bc62e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">task axi_monitor::read_address </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>monitors Read Address channel </p>
<p>and sends out TLM pkt. If this monitor's agent is a responder, then also creates another TLM packet for Read Data channel monitoring thread to use to send back to the master Loop Wait for activity on the Write Address Channel Convert into an <a class="el" href="classaxi__seq__item.html" title="contains all data and functions related to axi and usage ">axi_seq_item</a> Send out analysis port If responder, read from agent's memory, create another TLM packet and send to Read Data channel to send back to master </p>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00316">316</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>References <a class="el" href="axi__seq__item_8svh_source.html#l00043">axi_seq_item::addr</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00039">ADDR_WIDTH</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00229">ar_to_class()</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00048">axi_seq_item::burst_size</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00049">axi_seq_item::burst_type</a>, <a class="el" href="axi__pkg_8sv_source.html#l00320">calculate_axlen()</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00071">axi_seq_item::cmd</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00288">axi_seq_item::convert2string()</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00044">axi_seq_item::data</a>, <a class="el" href="axi__monitor_8svh_source.html#l00045">driver_activity_ap</a>, <a class="el" href="axi__agent__config_8svh_source.html#l00043">axi_agent_config::drv_type</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00058">e_READ</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00059">e_READ_DATA</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00078">e_RESPONDER</a>, <a class="el" href="axi__pkg_8sv_source.html#l00538">get_beat_N_byte_lanes()</a>, <a class="el" href="axi__if__abstract_8svh_source.html#l00117">axi_if_abstract::get_data_bus_width()</a>, <a class="el" href="axi__pkg_8sv_source.html#l00447">get_next_address()</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00045">axi_seq_item::len</a>, <a class="el" href="axi__monitor_8svh_source.html#l00048">m_config</a>, <a class="el" href="axi__monitor_8svh_source.html#l00049">m_memory</a>, <a class="el" href="memory_8svh_source.html#l00067">memory::read()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00478">read_data()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00052">readdata_mbx</a>, <a class="el" href="axi__agent__config_8svh_source.html#l00050">axi_agent_config::rvalid</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00052">axi_seq_item::valid</a>, <a class="el" href="axi__monitor_8svh_source.html#l00047">vif</a>, and <a class="el" href="axi__if__abstract_8svh_source.html#l00201">axi_if_abstract::wait_for_read_address()</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00093">run_phase()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_cgraph.png" border="0" usemap="#classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_cgraph" alt=""/></div>
<map name="classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_cgraph" id="classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_cgraph">
<area shape="rect" id="node2" href="axi__uvm__pkg_8sv.html#aed1da5b42d561f8319065d7d6eed556b" title="Pull values out of a axi_seq_item_ar_vector_s and stuffs them into an axi_seq_item. " alt="" coords="278,5,367,32"/>
<area shape="rect" id="node3" href="axi__pkg_8sv.html#afbfbf7a50bf6dabae3804e39d05434b1" title="calculate awlen or arlen " alt="" coords="706,67,818,93"/>
<area shape="rect" id="node5" href="classaxi__seq__item.html#a510d32edb7887045a31a308bc7198c46" title="Convert item&#39;s variable into one printable string. " alt="" coords="228,107,417,133"/>
<area shape="rect" id="node6" href="axi__pkg_8sv.html#a269e42497226a3a0def0fc1bfdd7d22a" title="return byte lanes that contain valid data " alt="" coords="471,195,629,221"/>
<area shape="rect" id="node9" href="classaxi__if__abstract.html#a834de2d058eec05c4c890435fae83a5b" title="returns data bus width " alt="" coords="256,209,389,250"/>
<area shape="rect" id="node10" href="axi__pkg_8sv.html#a2bdf1895089f5dfc5195f221ecfc02d8" title="Get next address for reading/writing to memory. " alt="" coords="260,157,385,184"/>
<area shape="rect" id="node12" href="classmemory.html#ab676c74a01283bf843f4a31f632d36b1" title="Reads from memory. " alt="" coords="271,325,374,352"/>
<area shape="rect" id="node13" href="classaxi__monitor.html#ae9d073687e001b3bde7cc83e11c76a96" title="monitors Read Data channel and sends out TLM pkt Loop Wait for activity on the Read Data Channel..." alt="" coords="245,376,400,403"/>
<area shape="rect" id="node15" href="classaxi__if__abstract.html#ac122b014826138edcbb74b601b625364" title="Wait for a valid read address to be acknowledged and return it. " alt="" coords="253,427,392,469"/>
<area shape="rect" id="node4" href="axi__pkg_8sv.html#a1bb88ba6ed9a3a081a64f90042a681b5" title="calculate how unaligned the address is from the burst size " alt="" coords="889,59,1040,101"/>
<area shape="rect" id="node7" href="axi__pkg_8sv.html#a6c8ade980c77973114ddfd403d25bc23" title="calculate burst_size aligned address " alt="" coords="683,129,841,170"/>
<area shape="rect" id="node8" href="axi__pkg_8sv.html#a4af175634a55ae773681009062989a5d" title="calculate bus&#45;siz aligned address " alt="" coords="687,194,837,235"/>
<area shape="rect" id="node11" href="axi__pkg_8sv.html#a1fe6872099e588c0924c5bb71a9964b3" title="calculate the wrap boundaries for a given burst " alt="" coords="465,136,635,163"/>
<area shape="rect" id="node14" href="classaxi__if__abstract.html#ad72883433768852cedc9acbf5263e071" title="Wait for a valid read data to be acknowledged and return it. " alt="" coords="481,369,619,410"/>
</map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_icgraph.png" border="0" usemap="#classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_icgraph" alt=""/></div>
<map name="classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_icgraph" id="classaxi__monitor_a1894a2a0b2a491fc4cfc047fe5bc62e9_icgraph">
<area shape="rect" id="node2" href="classaxi__monitor.html#a34a7e7fb040dbba2301f67bf6e40fe91" title="Starts the monitoring threads. " alt="" coords="228,5,385,32"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ae9d073687e001b3bde7cc83e11c76a96"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">task axi_monitor::read_data </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>monitors Read Data channel and sends out TLM pkt Loop Wait for activity on the Read Data Channel,store in queue Once read address packet received, store queue contents into tlm pkt When rlast received, send out analysis port </p>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00478">478</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>References <a class="el" href="axi__seq__item_8svh_source.html#l00071">axi_seq_item::cmd</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00044">axi_seq_item::data</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00059">e_READ_DATA</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00045">axi_seq_item::len</a>, <a class="el" href="axi__monitor_8svh_source.html#l00052">readdata_mbx</a>, <a class="el" href="axi__pkg_8sv_source.html#l00208">axi_seq_item_r_vector_s::rlast</a>, <a class="el" href="axi__monitor_8svh_source.html#l00047">vif</a>, and <a class="el" href="axi__if__abstract_8svh_source.html#l00210">axi_if_abstract::wait_for_read_data()</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00316">read_address()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00093">run_phase()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_cgraph.png" border="0" usemap="#classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_cgraph" alt=""/></div>
<map name="classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_cgraph" id="classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_cgraph">
<area shape="rect" id="node2" href="classaxi__if__abstract.html#ad72883433768852cedc9acbf5263e071" title="Wait for a valid read data to be acknowledged and return it. " alt="" coords="208,5,347,47"/>
</map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_icgraph.png" border="0" usemap="#classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_icgraph" alt=""/></div>
<map name="classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_icgraph" id="classaxi__monitor_ae9d073687e001b3bde7cc83e11c76a96_icgraph">
<area shape="rect" id="node2" href="classaxi__monitor.html#a1894a2a0b2a491fc4cfc047fe5bc62e9" title="monitors Read Address channel " alt="" coords="208,5,383,32"/>
<area shape="rect" id="node3" href="classaxi__monitor.html#a34a7e7fb040dbba2301f67bf6e40fe91" title="Starts the monitoring threads. " alt="" coords="431,31,588,57"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a34a7e7fb040dbba2301f67bf6e40fe91"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">task axi_monitor::run_phase </td>
          <td>(</td>
          <td class="paramtype">uvm_phase&#160;</td>
          <td class="paramname"><em>phase</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Starts the monitoring threads. </p>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00093">93</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>References <a class="el" href="axi__monitor_8svh_source.html#l00316">read_address()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00478">read_data()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00116">write_address()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00169">write_data()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00283">write_response()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a34a7e7fb040dbba2301f67bf6e40fe91_cgraph.png" border="0" usemap="#classaxi__monitor_a34a7e7fb040dbba2301f67bf6e40fe91_cgraph" alt=""/></div>
<map name="classaxi__monitor_a34a7e7fb040dbba2301f67bf6e40fe91_cgraph" id="classaxi__monitor_a34a7e7fb040dbba2301f67bf6e40fe91_cgraph">
<area shape="rect" id="node2" href="classaxi__monitor.html#a1894a2a0b2a491fc4cfc047fe5bc62e9" title="monitors Read Address channel " alt="" coords="211,429,385,455"/>
<area shape="rect" id="node14" href="classaxi__monitor.html#ae9d073687e001b3bde7cc83e11c76a96" title="monitors Read Data channel and sends out TLM pkt Loop Wait for activity on the Read Data Channel..." alt="" coords="451,559,605,586"/>
<area shape="rect" id="node17" href="classaxi__monitor.html#a6b7dc286ef67470782ca0d74f60dc692" title="monitors Write Address channel " alt="" coords="235,636,361,677"/>
<area shape="rect" id="node20" href="classaxi__monitor.html#a533d709a6e06148b22425eb52277983b" title="monitors Write Data channel " alt="" coords="219,147,377,174"/>
<area shape="rect" id="node23" href="classaxi__monitor.html#a999c77ab0723510d713bc1d89b1f5c92" title="monitors Write Response channel and sends out TLM pkt Loop Wait for activity on the Write Response Ch..." alt="" coords="235,779,361,820"/>
<area shape="rect" id="node3" href="axi__uvm__pkg_8sv.html#aed1da5b42d561f8319065d7d6eed556b" title="Pull values out of a axi_seq_item_ar_vector_s and stuffs them into an axi_seq_item. " alt="" coords="483,458,573,485"/>
<area shape="rect" id="node4" href="axi__pkg_8sv.html#afbfbf7a50bf6dabae3804e39d05434b1" title="calculate awlen or arlen " alt="" coords="911,399,1023,426"/>
<area shape="rect" id="node6" href="classaxi__seq__item.html#a510d32edb7887045a31a308bc7198c46" title="Convert item&#39;s variable into one printable string. " alt="" coords="433,610,623,637"/>
<area shape="rect" id="node7" href="axi__pkg_8sv.html#a269e42497226a3a0def0fc1bfdd7d22a" title="return byte lanes that contain valid data " alt="" coords="676,173,835,199"/>
<area shape="rect" id="node10" href="classaxi__if__abstract.html#a834de2d058eec05c4c890435fae83a5b" title="returns data bus width " alt="" coords="461,224,595,265"/>
<area shape="rect" id="node11" href="axi__pkg_8sv.html#a2bdf1895089f5dfc5195f221ecfc02d8" title="Get next address for reading/writing to memory. " alt="" coords="465,173,591,199"/>
<area shape="rect" id="node13" href="classmemory.html#ab676c74a01283bf843f4a31f632d36b1" title="Reads from memory. " alt="" coords="477,341,579,367"/>
<area shape="rect" id="node16" href="classaxi__if__abstract.html#ac122b014826138edcbb74b601b625364" title="Wait for a valid read address to be acknowledged and return it. " alt="" coords="459,392,597,433"/>
<area shape="rect" id="node5" href="axi__pkg_8sv.html#a1bb88ba6ed9a3a081a64f90042a681b5" title="calculate how unaligned the address is from the burst size " alt="" coords="1095,392,1245,433"/>
<area shape="rect" id="node8" href="axi__pkg_8sv.html#a6c8ade980c77973114ddfd403d25bc23" title="calculate burst_size aligned address " alt="" coords="888,224,1047,265"/>
<area shape="rect" id="node9" href="axi__pkg_8sv.html#a4af175634a55ae773681009062989a5d" title="calculate bus&#45;siz aligned address " alt="" coords="892,159,1043,200"/>
<area shape="rect" id="node12" href="axi__pkg_8sv.html#a1fe6872099e588c0924c5bb71a9964b3" title="calculate the wrap boundaries for a given burst " alt="" coords="671,231,840,258"/>
<area shape="rect" id="node15" href="classaxi__if__abstract.html#ad72883433768852cedc9acbf5263e071" title="Wait for a valid read data to be acknowledged and return it. " alt="" coords="686,560,825,601"/>
<area shape="rect" id="node18" href="classaxi__if__abstract.html#a9e019c384309938d98fb93eb9d19ee35" title="Wait for a valid write address to be acknowledged and return it. " alt="" coords="459,661,597,703"/>
<area shape="rect" id="node19" href="axi__uvm__pkg_8sv.html#acaa78ee9684ddd7ba5bf9cdfa88808e0" title="Pull values out of a axi_seq_item_aw_vector_s and stuffs them into an axi_seq_item. " alt="" coords="481,727,575,754"/>
<area shape="rect" id="node21" href="classaxi__if__abstract.html#ae1a2ca6a8c9c35f84db03942796fc092" title="Wait for a valid write data to be acknowledged and return it. " alt="" coords="459,5,597,47"/>
<area shape="rect" id="node22" href="classmemory.html#a244362130b448b6842b19d6951304b51" title="Writes into memory. " alt="" coords="475,122,581,149"/>
<area shape="rect" id="node24" href="classaxi__if__abstract.html#a5030adaa9d120c151c041912c25bc538" title="Wait for a valid write response to be acknowledged and return it. " alt="" coords="459,779,597,820"/>
<area shape="rect" id="node25" href="axi__uvm__pkg_8sv.html#a966a2770a1d733e0eec230225ca39f77" title="return values from a axi_seq_item_b_vector_s and return an axi_seq_item " alt="" coords="485,845,571,871"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a45ff32f05984e710070e614ffc9784a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axi_monitor::uvm_component_utils </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classaxi__monitor.html">axi_monitor</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a6b7dc286ef67470782ca0d74f60dc692"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">task axi_monitor::write_address </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>monitors Write Address channel </p>
<p>and sends out TLM pkt. If this monitor's agent is a responder, then also creates another TLM packet for Write Data channel monitoring thread to use Loop Wait for activity on the Write Address Channel Convert into an <a class="el" href="classaxi__seq__item.html" title="contains all data and functions related to axi and usage ">axi_seq_item</a> Send out analysis port Add to Write Data Channel monitoring thread's queue </p>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00116">116</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>References <a class="el" href="axi__uvm__pkg_8sv_source.html#l00125">aw_to_class()</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00071">axi_seq_item::cmd</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00288">axi_seq_item::convert2string()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00045">driver_activity_ap</a>, <a class="el" href="axi__agent__config_8svh_source.html#l00043">axi_agent_config::drv_type</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00078">e_RESPONDER</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00057">e_WRITE</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00045">axi_seq_item::len</a>, <a class="el" href="axi__monitor_8svh_source.html#l00048">m_config</a>, <a class="el" href="axi__monitor_8svh_source.html#l00047">vif</a>, <a class="el" href="axi__if__abstract_8svh_source.html#l00174">axi_if_abstract::wait_for_write_address()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00051">writedata_mbx</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00093">run_phase()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_cgraph.png" border="0" usemap="#classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_cgraph" alt=""/></div>
<map name="classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_cgraph" id="classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_cgraph">
<area shape="rect" id="node2" href="axi__uvm__pkg_8sv.html#acaa78ee9684ddd7ba5bf9cdfa88808e0" title="Pull values out of a axi_seq_item_aw_vector_s and stuffs them into an axi_seq_item. " alt="" coords="226,5,321,32"/>
<area shape="rect" id="node3" href="classaxi__seq__item.html#a510d32edb7887045a31a308bc7198c46" title="Convert item&#39;s variable into one printable string. " alt="" coords="179,56,368,83"/>
<area shape="rect" id="node4" href="classaxi__if__abstract.html#a9e019c384309938d98fb93eb9d19ee35" title="Wait for a valid write address to be acknowledged and return it. " alt="" coords="204,107,343,149"/>
</map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_icgraph.png" border="0" usemap="#classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_icgraph" alt=""/></div>
<map name="classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_icgraph" id="classaxi__monitor_a6b7dc286ef67470782ca0d74f60dc692_icgraph">
<area shape="rect" id="node2" href="classaxi__monitor.html#a34a7e7fb040dbba2301f67bf6e40fe91" title="Starts the monitoring threads. " alt="" coords="179,13,336,39"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a533d709a6e06148b22425eb52277983b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">task axi_monitor::write_data </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>monitors Write Data channel </p>
<p>and sends out TLM pkt. Loop Wait for activity on the Write Data Channel and push it into a queue When a write address isavailable,</p><ul>
<li>pop all queued write data into the write address packet.</li>
<li>write to m_memory (likely the agent's local memory memory instantiation Once number of expected beats is received (matches awlen), then send out analysis port </li>
</ul>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00169">169</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>References <a class="el" href="axi__seq__item_8svh_source.html#l00043">axi_seq_item::addr</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00039">ADDR_WIDTH</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00048">axi_seq_item::burst_size</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00049">axi_seq_item::burst_type</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00071">axi_seq_item::cmd</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00044">axi_seq_item::data</a>, <a class="el" href="axi__agent__config_8svh_source.html#l00043">axi_agent_config::drv_type</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00078">e_RESPONDER</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00060">e_WRITE_DATA</a>, <a class="el" href="axi__pkg_8sv_source.html#l00538">get_beat_N_byte_lanes()</a>, <a class="el" href="axi__if__abstract_8svh_source.html#l00117">axi_if_abstract::get_data_bus_width()</a>, <a class="el" href="axi__pkg_8sv_source.html#l00447">get_next_address()</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00045">axi_seq_item::len</a>, <a class="el" href="axi__monitor_8svh_source.html#l00048">m_config</a>, <a class="el" href="axi__monitor_8svh_source.html#l00049">m_memory</a>, <a class="el" href="axi__monitor_8svh_source.html#l00047">vif</a>, <a class="el" href="axi__if__abstract_8svh_source.html#l00183">axi_if_abstract::wait_for_write_data()</a>, <a class="el" href="axi__pkg_8sv_source.html#l00142">axi_seq_item_w_vector_s::wdata</a>, <a class="el" href="axi__pkg_8sv_source.html#l00144">axi_seq_item_w_vector_s::wlast</a>, <a class="el" href="memory_8svh_source.html#l00058">memory::write()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00051">writedata_mbx</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00056">axi_seq_item::wstrb</a>, and <a class="el" href="axi__pkg_8sv_source.html#l00143">axi_seq_item_w_vector_s::wstrb</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00093">run_phase()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a533d709a6e06148b22425eb52277983b_cgraph.png" border="0" usemap="#classaxi__monitor_a533d709a6e06148b22425eb52277983b_cgraph" alt=""/></div>
<map name="classaxi__monitor_a533d709a6e06148b22425eb52277983b_cgraph" id="classaxi__monitor_a533d709a6e06148b22425eb52277983b_cgraph">
<area shape="rect" id="node2" href="axi__pkg_8sv.html#a269e42497226a3a0def0fc1bfdd7d22a" title="return byte lanes that contain valid data " alt="" coords="403,51,561,78"/>
<area shape="rect" id="node5" href="classaxi__if__abstract.html#a834de2d058eec05c4c890435fae83a5b" title="returns data bus width " alt="" coords="213,40,347,81"/>
<area shape="rect" id="node6" href="axi__pkg_8sv.html#a2bdf1895089f5dfc5195f221ecfc02d8" title="Get next address for reading/writing to memory. " alt="" coords="217,106,343,133"/>
<area shape="rect" id="node10" href="classaxi__if__abstract.html#ae1a2ca6a8c9c35f84db03942796fc092" title="Wait for a valid write data to be acknowledged and return it. " alt="" coords="211,157,349,199"/>
<area shape="rect" id="node11" href="classmemory.html#a244362130b448b6842b19d6951304b51" title="Writes into memory. " alt="" coords="227,223,333,250"/>
<area shape="rect" id="node3" href="axi__pkg_8sv.html#a6c8ade980c77973114ddfd403d25bc23" title="calculate burst_size aligned address " alt="" coords="615,71,773,112"/>
<area shape="rect" id="node4" href="axi__pkg_8sv.html#a4af175634a55ae773681009062989a5d" title="calculate bus&#45;siz aligned address " alt="" coords="619,5,769,47"/>
<area shape="rect" id="node7" href="axi__pkg_8sv.html#a1fe6872099e588c0924c5bb71a9964b3" title="calculate the wrap boundaries for a given burst " alt="" coords="397,106,567,133"/>
<area shape="rect" id="node8" href="axi__pkg_8sv.html#afbfbf7a50bf6dabae3804e39d05434b1" title="calculate awlen or arlen " alt="" coords="638,137,750,163"/>
<area shape="rect" id="node9" href="axi__pkg_8sv.html#a1bb88ba6ed9a3a081a64f90042a681b5" title="calculate how unaligned the address is from the burst size " alt="" coords="821,129,972,171"/>
</map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a533d709a6e06148b22425eb52277983b_icgraph.png" border="0" usemap="#classaxi__monitor_a533d709a6e06148b22425eb52277983b_icgraph" alt=""/></div>
<map name="classaxi__monitor_a533d709a6e06148b22425eb52277983b_icgraph" id="classaxi__monitor_a533d709a6e06148b22425eb52277983b_icgraph">
<area shape="rect" id="node2" href="classaxi__monitor.html#a34a7e7fb040dbba2301f67bf6e40fe91" title="Starts the monitoring threads. " alt="" coords="211,5,368,32"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a999c77ab0723510d713bc1d89b1f5c92"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">task axi_monitor::write_response </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>monitors Write Response channel and sends out TLM pkt Loop Wait for activity on the Write Response Channel Convert into an <a class="el" href="classaxi__seq__item.html" title="contains all data and functions related to axi and usage ">axi_seq_item</a> Send out analysis port </p>

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00283">283</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>References <a class="el" href="axi__uvm__pkg_8sv_source.html#l00172">b_to_class()</a>, <a class="el" href="axi__seq__item_8svh_source.html#l00071">axi_seq_item::cmd</a>, <a class="el" href="axi__uvm__pkg_8sv_source.html#l00061">e_WRITE_RESPONSE</a>, <a class="el" href="axi__monitor_8svh_source.html#l00047">vif</a>, and <a class="el" href="axi__if__abstract_8svh_source.html#l00192">axi_if_abstract::wait_for_write_response()</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00093">run_phase()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_cgraph.png" border="0" usemap="#classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_cgraph" alt=""/></div>
<map name="classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_cgraph" id="classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_cgraph">
<area shape="rect" id="node2" href="axi__uvm__pkg_8sv.html#a966a2770a1d733e0eec230225ca39f77" title="return values from a axi_seq_item_b_vector_s and return an axi_seq_item " alt="" coords="205,5,291,32"/>
<area shape="rect" id="node3" href="classaxi__if__abstract.html#a5030adaa9d120c151c041912c25bc538" title="Wait for a valid write response to be acknowledged and return it. " alt="" coords="179,57,317,98"/>
</map>
</div>
</p>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_icgraph.png" border="0" usemap="#classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_icgraph" alt=""/></div>
<map name="classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_icgraph" id="classaxi__monitor_a999c77ab0723510d713bc1d89b1f5c92_icgraph">
<area shape="rect" id="node2" href="classaxi__monitor.html#a34a7e7fb040dbba2301f67bf6e40fe91" title="Starts the monitoring threads. " alt="" coords="179,13,336,39"/>
</map>
</div>
</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ad221ada88970cbfcc956744c45aa6acd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uvm_analysis_port&lt;<a class="el" href="classaxi__seq__item.html">axi_seq_item</a>&gt; axi_monitor::driver_activity_ap</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00045">45</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00077">build_phase()</a>, <a class="el" href="axi__agent_8svh_source.html#l00112">axi_agent::connect_phase()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00316">read_address()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00116">write_address()</a>.</p>

</div>
</div>
<a class="anchor" id="a402836a98848f900644618787e2030e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classaxi__agent__config.html">axi_agent_config</a> axi_monitor::m_config</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00048">48</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__agent_8svh_source.html#l00072">axi_agent::build_phase()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00316">read_address()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00116">write_address()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00169">write_data()</a>.</p>

</div>
</div>
<a class="anchor" id="a606253997dae58935a0d5de9d4a69368"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmemory.html">memory</a> axi_monitor::m_memory</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00049">49</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__agent_8svh_source.html#l00072">axi_agent::build_phase()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00316">read_address()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00169">write_data()</a>.</p>

</div>
</div>
<a class="anchor" id="ad54a0f558dbdd6e86df4e8f9d9db92d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mailbox&lt;<a class="el" href="classaxi__seq__item.html">axi_seq_item</a>&gt; axi_monitor::readdata_mbx = <a class="el" href="classaxi__monitor.html#ae1cc05f18a24d7030f6cc05463435b65">new</a>(0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00052">52</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00316">read_address()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00478">read_data()</a>.</p>

</div>
</div>
<a class="anchor" id="a19f6bfb89c02348e010c96b3ba70ba02"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classaxi__if__abstract.html">axi_if_abstract</a> axi_monitor::vif</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00047">47</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00077">build_phase()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00316">read_address()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00478">read_data()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00116">write_address()</a>, <a class="el" href="axi__monitor_8svh_source.html#l00169">write_data()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00283">write_response()</a>.</p>

</div>
</div>
<a class="anchor" id="a59cd4aabf0d1e6e9064c94578ae75818"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mailbox&lt;<a class="el" href="classaxi__seq__item.html">axi_seq_item</a>&gt; axi_monitor::writedata_mbx = <a class="el" href="classaxi__monitor.html#ae1cc05f18a24d7030f6cc05463435b65">new</a>(0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="axi__monitor_8svh_source.html#l00051">51</a> of file <a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a>.</p>

<p>Referenced by <a class="el" href="axi__monitor_8svh_source.html#l00116">write_address()</a>, and <a class="el" href="axi__monitor_8svh_source.html#l00169">write_data()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>tb/<a class="el" href="axi__monitor_8svh_source.html">axi_monitor.svh</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
